package com.ruoyi.service.inventory;

import com.ruoyi.domain.inventory.MesInventoryRecord;

import java.util.List;

/**
 * 库存记录Service接口
 * 
 * @author ruoyi
 */
public interface IMesInventoryRecordService {
    /**
     * 查询库存记录
     * 
     * @param recordId 库存记录主键
     * @return 库存记录
     */
    public MesInventoryRecord selectMesInventoryRecordByRecordId(Long recordId);

    /**
     * 查询库存记录列表
     * 
     * @param mesInventoryRecord 库存记录
     * @return 库存记录集合
     */
    public List<MesInventoryRecord> selectMesInventoryRecordList(MesInventoryRecord mesInventoryRecord);

    /**
     * 校验记录编号是否唯一
     * 
     * @param recordCode 记录编号
     * @return 结果
     */
    public String checkRecordCodeUnique(String recordCode, Long recordId);

    /**
     * 根据物料编码查询库存记录
     * 
     * @param materialCode 物料编码
     * @return 库存记录集合
     */
    public List<MesInventoryRecord> selectRecordsByMaterialCode(String materialCode);

    /**
     * 根据仓库编码查询库存记录
     * 
     * @param warehouseCode 仓库编码
     * @return 库存记录集合
     */
    public List<MesInventoryRecord> selectRecordsByWarehouseCode(String warehouseCode);

    /**
     * 根据关联单号查询库存记录
     * 
     * @param relatedCode 关联单号
     * @return 库存记录集合
     */
    public List<MesInventoryRecord> selectRecordsByRelatedCode(String relatedCode);

    /**
     * 新增库存记录
     * 
     * @param mesInventoryRecord 库存记录
     * @return 结果
     */
    public int insertMesInventoryRecord(MesInventoryRecord mesInventoryRecord);

    /**
     * 修改库存记录
     * 
     * @param mesInventoryRecord 库存记录
     * @return 结果
     */
    public int updateMesInventoryRecord(MesInventoryRecord mesInventoryRecord);

    /**
     * 批量删除库存记录
     * 
     * @param recordIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesInventoryRecordByRecordIds(Long[] recordIds);

    /**
     * 删除库存记录信息
     * 
     * @param recordId 库存记录主键
     * @return 结果
     */
    public int deleteMesInventoryRecordByRecordId(Long recordId);
}